#ifndef CARAMA_H
#define CARAMA_H
#include <sys/time.h>
#include <pthread.h>
#include <time.h>

// 封装一下carama 这玩意是videx x不确定
#define FRAMEBUFFER_COUNT 10 //帧缓冲数量
#define CARAMA_MAX_WIDTH    480
#define CARAMA_MAX_HEIGHT   360
#define YUYV_FORMAT 2
#define CARAMA_PATH     "/dev/video0"
/*** 摄像头像素格式及其描述信息 ***/
typedef struct camera_format {
 unsigned char description[32]; //字符串描述信息
 unsigned int pixelformat; //像素格式
} cam_fmt;

/*** 描述一个帧缓冲的信息 ***/
typedef struct cam_buf_info {
 unsigned short *start; //帧缓冲起始地址
 unsigned long length; //帧缓冲长度
} cam_buf_info;
enum {
    CARAMA_RUN = 1,
    CARAMA_PAUSE,
    CARAMA_OFF,
    CARAMA_FRAMW
};
struct carama_info {
    int carama_fd;
    int msg_fd;
    unsigned int cur_format_width;     //当前格式的宽度
    unsigned int cur_format_height;    //当前格式的高度
    unsigned int fps;                  // fps的值
    struct itimerspec carama_timer;     // 根据fps设定超时时间之类的动作 
    timer_t timerid;
};
void get_current_format(char * buf,unsigned int length);
int carama_init(const char * path);
void* carama_thread(void * parma);
#endif